<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      /*
      显式转换为string，通过toString和String两个方法，null和undefined无法调用toString方法
      */
      // 使用toString方法转换为string
        console.log((10.01).toString()); // 将数字 10.01 转换为字符串并输出，结果为 "10.01"
        console.log(true.toString()); // 将布尔值 true 转换为字符串并输出，结果为 "true"
        console.log([1, 2, 3].toString()); // 将数组 [1, 2, 3] 转换为字符串并输出，结果为 "1,2,3"
        // 使用 String 方法转换为 string
        console.log(String(null)); // 使用 String 方法将 null 转换为字符串，结果为 "null"
        console.log(String(undefined)); // 使用 String 方法将 undefined 转换为字符串，结果为 "undefined"

        /*
        显式转换为 number，通过 Number、parseInt 和 parseFloat 方法
        */
        // 使用 Number 方法转换为 number
        console.log(Number(" 123.56 ")); // 将字符串 " 123.56 "（包含空格）转换为数字，结果为 123.56
        console.log(Number(" \t \n ")); // 将只包含空白字符（制表符、换行符等）的字符串转换为数字，结果为 0
        console.log(Number("123.56px")); // 将包含数字和非数字字符的字符串转换为数字，结果为 NaN（不是一个数字）
        console.log(Number(true)); // 将布尔值 true 转换为数字，结果为 1
        console.log(Number(false)); // 将布尔值 false 转换为数字，结果为 0
        console.log(Number(null)); // 将 null 转换为数字，结果为 0
        console.log(Number(undefined)); // 将 undefined 转换为数字，结果为 NaN
        // 使用 parseInt 方法转换为整数
        console.log(parseInt(" 123.56 ")); // 将字符串 " 123.56 " 转换为整数，只提取整数部分，结果为 123
        console.log(parseInt(" \t \n ")); // 将只包含空白字符的字符串转换为整数，结果为 NaN
        console.log(parseInt("123.56px")); // 将包含数字和非数字字符的字符串转换为整数，只提取整数部分，结果为 123
        // 使用 parseFloat 方法转换为小数
        console.log(parseFloat(" 123.56 ")); // 将字符串 " 123.56 "（包含空格）转换为小数，结果为 123.56
        console.log(parseFloat(" \t \n ")); // 将只包含空白字符的字符串转换为小数，结果为 NaN
        console.log(parseFloat("123.56px").toFixed(1)); // 将包含数字和非数字字符的字符串转换为小数，然后保留一位小数，结果为 123.6（只保留1位小数）

        console.log();
        /*
        显式转换为 boolean，通过 Boolean 方法
        */
        // 使用 Boolean 方法将 number 转换为布尔值
        console.log(Boolean(0)); // 将数字 0 转换为布尔值，结果为 false
        console.log(Boolean(1)); // 将数字 1 转换为布尔值，结果为 true
        console.log(Boolean(-1)); // 将数字 -1 转换为布尔值，结果为 true
        console.log(Boolean(NaN)); // 将 NaN 转换为布尔值，结果为 false
        // 使用 Boolean 方法将 string 转换为布尔值
        console.log();
        console.log(Boolean("a")); // 将非空字符串 "a" 转换为布尔值，结果为 true
        console.log(Boolean(" ")); // 将只包含空格的字符串转换为布尔值，结果为 true
        console.log(Boolean("")); // 将空字符串转换为布尔值，结果为 false
        // 使用 Boolean 方法将 null、undefined、数组和对象转换为布尔值
        console.log(Boolean(null)); // 将 null 转换为布尔值，结果为 false
        console.log(Boolean(undefined)); // 将 undefined 转换为布尔值，结果为 false
        console.log(Boolean([])); // 将空数组转换为布尔值，结果为 true
        console.log(Boolean({})); // 将空对象转换为布尔值，结果为 true
            </script>
          </body>
</html>
